草庐IT

LeetCode - 两数之和

全部标签

【LeetCode刷题】1. 两数之和

1.两数之和给定一个整数数组nums和一个整数目标值target,请你在该数组中找出和为目标值target的那两个整数,并返回它们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。你可以按任意顺序返回答案。示例1:输入:nums=[2,7,11,15],target=9输出:[0,1]解释:因为nums[0]+nums[1]==9,返回[0,1]。示例2:输入:nums=[3,2,4],target=6输出:[1,2]示例3:输入:nums=[3,3],target=6输出:[0,1]提示:2-109-109只会存在一个有效答案解法一:暴力匹配代码拿我

leetcode 300. Longest Increasing Subsequence 最长递增子序列 (中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/longest-increasing-subsequence给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,3,7,101],因此长度为4。示例2:输入:nums=[0,1,0,3,2,3]输出:4示例3:输入:nums=[7,7,7,7,7,7,

leetcode 139. Word Break 单词拆分(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/word-break给你一个字符串s和一个字符串列表wordDict作为字典。请你判断是否可以利用字典中出现的单词拼接出s。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例1:输入:s="leetcode",wordDict=["leet","code"]输出:true解释:返回true因为"leetcode"可以由"leet"和"code"拼接成。示例2:输入:s="applepenapple",wordDict=["apple","pen"]输出:true解释:返回true因为"a

leetcode 300. Longest Increasing Subsequence 最长递增子序列 (中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/longest-increasing-subsequence给你一个整数数组nums,找到其中最长严格递增子序列的长度。子序列 是由数组派生而来的序列,删除(或不删除)数组中的元素而不改变其余元素的顺序。例如,[3,6,2,7]是数组[0,3,1,6,2,2,7]的子序列。示例1:输入:nums=[10,9,2,5,3,7,101,18]输出:4解释:最长递增子序列是[2,3,7,101],因此长度为4。示例2:输入:nums=[0,1,0,3,2,3]输出:4示例3:输入:nums=[7,7,7,7,7,7,

leetcode 139. Word Break 单词拆分(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/word-break给你一个字符串s和一个字符串列表wordDict作为字典。请你判断是否可以利用字典中出现的单词拼接出s。注意:不要求字典中出现的单词全部都使用,并且字典中的单词可以重复使用。示例1:输入:s="leetcode",wordDict=["leet","code"]输出:true解释:返回true因为"leetcode"可以由"leet"和"code"拼接成。示例2:输入:s="applepenapple",wordDict=["apple","pen"]输出:true解释:返回true因为"a

leetcode 416. Partition Equal Subset Sum 分割等和子集(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/partition-equal-subset-sum给你一个只包含正整数的非空数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例1:输入:nums=[1,5,11,5]输出:true解释:数组可以分割成[1,5,5]和[11]。示例2:输入:nums=[1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。提示:11二、解题思路设所有数字和为sum,我们的目标是选取一个子数组,使它的总和为sum/2,定义二维boolean数组dp[i][j],其意义是使

leetcode 1143. Longest Commom Subsequence 最长公共子序列(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/longest-common-subsequence给定两个字符串 text1和 text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace"是"abcde"的子序列,但"aec"不是"abcde"的子序列。两个字符串的公共子序列是这两个字符串所共同拥有的子序列。示例1:输入:text1="abcde",text2="ace"输出:

leetcode 416. Partition Equal Subset Sum 分割等和子集(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/partition-equal-subset-sum给你一个只包含正整数的非空数组 nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。示例1:输入:nums=[1,5,11,5]输出:true解释:数组可以分割成[1,5,5]和[11]。示例2:输入:nums=[1,2,3,5]输出:false解释:数组不能分割成两个元素和相等的子集。提示:11二、解题思路设所有数字和为sum,我们的目标是选取一个子数组,使它的总和为sum/2,定义二维boolean数组dp[i][j],其意义是使

leetcode 1143. Longest Commom Subsequence 最长公共子序列(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/longest-common-subsequence给定两个字符串 text1和 text2,返回这两个字符串的最长公共子序列的长度。如果不存在公共子序列,返回0。一个字符串的 子序列 是指这样一个新的字符串:它是由原字符串在不改变字符的相对顺序的情况下删除某些字符(也可以不删除任何字符)后组成的新字符串。例如,"ace"是"abcde"的子序列,但"aec"不是"abcde"的子序列。两个字符串的公共子序列是这两个字符串所共同拥有的子序列。示例1:输入:text1="abcde",text2="ace"输出:

leetcode 279. Perfect Squares 完全平方数(中等)

一、题目大意标签:动态规划https://leetcode.cn/problems/perfect-squares给你一个整数n,返回和为n的完全平方数的最少数量。完全平方数是一个整数,其值等于另一个整数的平方;换句话说,其值等于一个整数自乘的积。例如,1、4、9和16都是完全平方数,而3和11不是。示例 1:输入:n=12输出:3解释:12=4+4+4示例2:输入:n=13输出:2解释:13=4+9提示:1二、解题思路动态规划,dp[i]表示i有几个完全平方数的加和构成,枚举比i小的完全平方数,状态转移方程为dp[i]=min(dp[i-k]+1),k就是完全平方数三、解题方法3.1Java